package com.redepronik.negosysdis.invfac.controller;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.redepronik.negosys.invfac.entity.Detalleegreso;
import com.redepronik.negosys.invfac.entity.Egreso;
import com.redepronik.negosys.invfac.entityAux.FacturaReporte;
import com.redepronik.negosys.invfac.service.EgresoService;
import com.redepronik.negosys.rrhh.service.ClienteService;
import com.redepronik.negosysdis.invfac.report.EgresoReport;

@Controller
@Scope("session")
public class ListadoBajaInventarioBean implements Serializable {

	private static final long serialVersionUID = 1L;

	@Autowired
	private EgresoService egresoService;

	@Autowired
	private ClienteService clienteService;

	@Autowired
	private EgresoReport egresoReport;

	// //busqueda de baja inventario lazyData
	private List<Egreso> listaEgresos;
	private String criterioBusquedaCodigo;
	// //

	private List<FacturaReporte> listaEgresosDetalle;

	private Egreso egreso;

	public ListadoBajaInventarioBean() {
		egreso = new Egreso();
	}

	public void generarListaDetalle() {
		listaEgresosDetalle = new ArrayList<FacturaReporte>();
		List<Detalleegreso> list = egreso.getDetalleegresos();
		for (Detalleegreso de : list)
			listaEgresosDetalle.add(egresoService.asignar(de, null, 11));

	}

	public String getCriterioBusquedaCodigo() {
		return criterioBusquedaCodigo;
	}

	public Egreso getEgreso() {
		return egreso;
	}

	public List<Egreso> getListaEgresos() {
		return listaEgresos;
	}

	public List<FacturaReporte> getListaEgresosDetalle() {
		return listaEgresosDetalle;
	}

	// // busqueda de baja inventario lazyData
	public void obtenerBajaInvetarioLazyData() {
		if (criterioBusquedaCodigo.compareToIgnoreCase("") == 0)
			presentaMensaje(new FacesMessage(FacesMessage.SEVERITY_ERROR,
					"MENSAJE DEL SISTEMA", "INGRESE UN CRITERIO DE BUSQUEDA"));
		else
			listaEgresos = egresoService.obtener(0, "",
					criterioBusquedaCodigo.toUpperCase(), "", 11);
	}

	private void presentaMensaje(FacesMessage message) {
		FacesContext.getCurrentInstance().addMessage(null, message);
	}

	public void setCriterioBusquedaCodigo(String criterioBusquedaCodigo) {
		this.criterioBusquedaCodigo = criterioBusquedaCodigo;
	}

	public void setEgreso(Egreso egreso) {
		this.egreso = egreso;
	}

	public void setListaEgresos(List<Egreso> listaEgresos) {
		this.listaEgresos = listaEgresos;
	}

	public void setListaEgresosDetalle(List<FacturaReporte> listaEgresosDetalle) {
		this.listaEgresosDetalle = listaEgresosDetalle;
	}

}